package router

import (
	"Data-API-MCP/backend/internal/interfaces/http/handler"

	"github.com/gin-gonic/gin"
)

// RegisterAPIRoutes 注册API相关路由
func RegisterAPIRoutes(r *gin.RouterGroup, apiHandler *handler.APIHandler) {
	apiGroup := r.Group("/apis")
	{
		// API管理
		apiGroup.POST("", apiHandler.CreateAPI)                                   // 创建API
		apiGroup.GET("", apiHandler.GetAPIs)                                      // 获取API列表
		apiGroup.GET("/:id", apiHandler.GetAPI)                                   // 获取单个API
		apiGroup.PUT("/:id", apiHandler.UpdateAPI)                                // 更新API
		apiGroup.DELETE("/:id", apiHandler.DeleteAPI)                             // 删除API
		apiGroup.POST("/:id/publish", apiHandler.PublishAPI)                      // 发布API
		apiGroup.POST("/:id/unpublish", apiHandler.UnpublishAPI)                  // 取消发布API
		apiGroup.POST("/:id/test", apiHandler.TestAPI)                            // 测试API
		apiGroup.GET("/connection/:connectionId", apiHandler.GetAPIsByConnection) // 获取指定连接的API列表

		// API版本管理
		apiGroup.GET("/:id/versions", apiHandler.GetAPIVersions)               // 获取API版本列表
		apiGroup.POST("/:id/versions", apiHandler.CreateAPIVersion)            // 创建API版本
		apiGroup.GET("/:id/versions/:version", apiHandler.GetAPIVersion)       // 获取API版本
		apiGroup.PUT("/:id/versions/:version", apiHandler.UpdateAPIVersion)    // 更新API版本
		apiGroup.DELETE("/:id/versions/:version", apiHandler.DeleteAPIVersion) // 删除API版本

		// API文档
		apiGroup.GET("/:id/docs", apiHandler.GetAPIDocs)     // 获取API文档
		apiGroup.POST("/:id/docs", apiHandler.CreateAPIDocs) // 创建API文档
		apiGroup.PUT("/:id/docs", apiHandler.UpdateAPIDocs)  // 更新API文档
	}
}
